home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995 February: Tool Chest / Dev.CD Feb 95 / Dev.CD Feb 95.toast / New System Software Extensions / ASLM SDK v1.1.2 / ASLM Examples / TestTools / Sources / PreloadTest.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-11-21  |  2.0 KB  |  98 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        PreloadTest.c
  3.  
  4.     Contains:    Test Circular dependencies in libraries
  5.  
  6.     Copyright:    © 1992-1993 by Apple Computer, Inc., all rights reserved.
  7.  
  8. */
  9.  
  10. #ifndef __STDIO__
  11. #include <stdio.h>
  12. #endif
  13. #ifndef __CTYPE__
  14. #include <CType.h>
  15. #endif
  16.  
  17. #ifndef __LIBRARYMANAGER__
  18. #undef NULL
  19. #include <LibraryManager.h>
  20. #endif
  21.  
  22. extern int    CircLib1(void);
  23. extern int    CircLib2(void);
  24. extern int    CircLib3(void);
  25. extern OSErr    UnloadCircLib1(void);
  26. extern Boolean    IsLibraryManagerLoaded(void);
  27.  
  28. int main(int argc, char** argv)
  29. {
  30.     OSErr    err;
  31.     int        a, b, c;
  32.     Boolean    doBreak = false;
  33.     short    index;
  34.     
  35.     for (index = 1; index < argc; index++)
  36.     {
  37.         if (argv[index][0] == '-')
  38.         { 
  39.             switch (tolower(argv[index][1]))
  40.             {
  41.                 case 'x':
  42.                     doBreak = true;
  43.                     break;
  44.                     
  45.                 default:
  46.                     fprintf(stderr, "### ERROR: Unknown option - '%s'\n", argv[index]);
  47.                     return 1;
  48.             }
  49.         }
  50.         else
  51.         {
  52.             fprintf(stderr, "### ERROR: Unknown option - '%s'\n", argv[index]);
  53.             return 1;
  54.         }
  55.     }
  56.     if (doBreak)
  57.         DebugStr("\pAbout to call InitLibraryManager");
  58.     
  59.     if ((err = InitLibraryManager(32768, kCurrentZone, kNormalMemory)) != kNoError)
  60.     {
  61.         fprintf(stderr, "### ERROR: Error #%d occurred initializing SLM\n", err);
  62.         return 3;
  63.     }
  64.     if ((err = LoadLibraries(true, true)) != kNoError)
  65.     {
  66.         fprintf(stderr, "### ERROR: Error #%d occurred preloading libraries\n", err);
  67.         CleanupLibraryManager();
  68.         return 4;
  69.     }
  70.     a = CircLib1();
  71.     if (a != 515)
  72.     {
  73.         fprintf(stderr, "### ERROR: CircLib1 returned a %d instead of a 515\n", a);
  74.     }
  75.     b = CircLib2();
  76.     if (b != 516)
  77.     {
  78.         fprintf(stderr, "### ERROR: CircLib2 returned a %d instead of a 516\n", b);
  79.     }
  80.     c = CircLib3();
  81.     if (c != 517)
  82.     {
  83.         fprintf(stderr, "### ERROR: CircLib3 returned a %d instead of a 517\n", c);
  84.     }
  85.     if ((err = UnloadLibraries()) != kNoError)
  86.     {
  87.         fprintf(stderr, "### ERROR: Error #%d occurred preloading libraries\n", err);
  88.     }
  89.     ResetFunctionSet(NULL);
  90.     if ((err = UnloadCircLib1()) != kNoError)
  91.     {
  92.         fprintf(stderr, "### ERROR: Error #%d occurred unloading CircLib1\n", err);
  93.     }
  94.     CleanupLibraryManager();
  95.     return 0;
  96. }
  97.  
  98.